package com.eastfair.visitor.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.eastfair.boot.request.PageParams;
import com.eastfair.boot.service.SuperService;
import com.eastfair.visitor.dto.*;
import com.eastfair.visitor.entity.ReservationAuditRecord;
import com.eastfair.visitor.vo.ReservationAuditRecordVO;
import com.eastfair.visitor.vo.ReservationVO;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 访客预约审核记录
 * </p>
 *
 * @author lyw
 * @date 2022-11-18
 */
public interface ReservationAuditRecordService extends SuperService<ReservationAuditRecord> {
    /**
     * do转vo
     * @param model
    */
    ReservationAuditRecordVO doToVo(ReservationAuditRecord model);
   /**
    * do转vo
    * @param modelList
   */
    List<ReservationAuditRecordVO> doToVos(List<ReservationAuditRecord> modelList);


   /**
    * 通用查询
    *
    * @param modelDTO DTO
    * @param ids 主键id集合
    * @return list
    */
   List<ReservationAuditRecord> list(ReservationAuditRecordDTO modelDTO, List<Long> ids);

  /**
  * 通用查询
  *
  * @param modelDTO DTO
  * @param ids 主键id集合
  * @return list
  */
  List<ReservationAuditRecord> listOfCache(ReservationAuditRecordDTO modelDTO, List<Long> ids);


    /**
     * 查询访客列表分页
     * @param params
     * @return
     */
  IPage<ReservationAuditRecordVO> queryReservationList(PageParams<ReservationAuditRecordPageQuery> params);

    /**
     * 取消访客预约
     * @param reservationAuditRecordUpdateDTO
     * @return
     */
   Boolean  delReservationInfo(ReservationAuditRecordUpdateDTO reservationAuditRecordUpdateDTO);

    /**
     * 添加访客预约信息
     *
     * @param reservationAuditRecordSaveDTO
     * @return
     */
    Boolean saveReservationInfo(ReservationAuditRecordSaveDTO reservationAuditRecordSaveDTO);

    /**
     * 修改访客审核状态
     * @param reservationAuditRecordUpdateDTO
     * @return
     */
    Boolean updateAuditStatusById(ReservationAuditRecordUpdateDTO reservationAuditRecordUpdateDTO);


    /**
     * 通过id获取访客信息
     *
     * @param reservationAuditRecordDTO
     * @return
     */
    ReservationAuditRecordVO getReservationInfoById(ReservationAuditRecordDTO reservationAuditRecordDTO);

    /**
     * 删除访客预约记录
     * @param reservationAuditRecordUpdateDTO
     * @return
     */
    Boolean delAuditStatusById(ReservationAuditRecordUpdateDTO reservationAuditRecordUpdateDTO);
}
